<?php
/*
 * Controlador de inicio de sesión de usuarios
 *
 * Autores: 
 *                - Fuck.inc
 */
 
class LoginController extends AppController
{	
	public function index()
	{
	}
	
	// Iniciar sesión
	public function login()
	{
		View::response('view');
		
		if (Input::hasPost("user") && Input::hasPost("password"))
		{
			$user = Input::post("user");
			$password = sha1(Input::post("password"));
			
			$this->respuesta = array("error" => false, "message" => "", "func" => "");
			
			if ($this->users->find_first("conditions: account='" . $user . "' AND password = '" . $password . "'"))
			{
				if($this->users->find_first("conditions: account='" . $user . "' AND blocked = 0"))
				{
					if($this->users->find_first("conditions: account='" . $user . "' AND activate = 1"))
					{
						$auth = new Auth("model", "class: users", "account: $user", "password: $password");
						if (!$auth->authenticate())
						{
							$this->respuesta = array("error" => true, "message" => ucfirst(_("there was something wrong with the authentication")), "func" => "saySimple");
							View::select("error");
						}
						else
						{
							Session::set('message', 1);
							
							// Si la vista se desea mostrar a través de ajax, entonces lo que se debe hacer es renderizar la vista.
							// En el momento no renderizamos la vista, el inicio de sesión se da recargando la página, así no se
							// pierde la variable de sesión del mensaje, mostrándolo cuando se actualiza el sitio.
							View::select(null, null);
						}
					}
					else
					{
						$this->respuesta = array("error" => true, "message" => ucfirst(_("this username is not activated in our system")), "func" => "tellSimple");
						View::select("error");
					}
				}
				else
				{
					$this->respuesta = array("error" => true, "message" => ucfirst(_("this username is blocked in our system")), "func" => "tellSimple");
					View::select("error");
				}
			}
			else
			{
				$this->respuesta = array("error" => true, "message" =>  ucfirst(_("the username or password you entered is incorrect")), "func" => "saySimple");
				View::select("error");
			}
		}
		else
			Router::redirect('', 0); // A esta vista no se ingresa sin un envío por post
	}
	
	// Cerrar sesión
	public function logout()
	{
		Auth::destroy_identity();
		
		Router::redirect('', 0);
	}
}

